생성자의 변수 이름에 추가적인 정보를 표시하기 위해서 팩토리 메서드를 사용한다.
struct Point{
protected:
Point(const float x, const float y): x(x), y(y) {}
public:
static Point newCartesian(float x, float y){
return {x, y};
}
static Point newPolar(float r, float theta){
return {r*cos(theta), r*sin(theta)};
}
};
팩토리 메서드는 객체를 생성하여 리턴(값으로 리턴)하는 메서드이다.
함수의 이름과 좌표 파라미터의 이름 모두 의미를 가지고 있다.
auto p=Point::NewPolar(5, M_PI/4);